/** FASSIT (Forms of Selective Attention in Intelligent Transportation Systems)
 * Computational Creativity and Digital Media
 * Cognitive and Media Systems Group
 * Centre for Informatics and Systems of the University of Coimbra (CISUC)
 *
 * Copyright (c) 2010-2013 University of Coimbra, Portugal
 * All rights reserved.
 */

package agent.Metrics.Uncertainty;

import poi.Uncertainty.*;

/**
 * This class is used to create the Uncertainty values for the first POI in the
 * Train, where the Agent do not yet has knowledge in the database
 * 
 * @author Hernani Costa
 * @version 0.1 date: 28/01/2013
 */
public class FirstPoiUncertainty {
	private UncertaintySchedule uSchedule;
	private UncertaintyDaysOff uDaysOff;
	private UncertaintyPrice uPrice;

	/**
	 * ------------------------------------------------------------------------
	 * Constructor class
	 * ------------------------------------------------------------------------
	 */
	public FirstPoiUncertainty() {
		creatingUncertaintyPrice();
		creatingUncertaintyDaysOff();
		creatingUncertaintySchedule();
	}

	private void creatingUncertaintyPrice() {
		uPrice = new UncertaintyPrice(1.0 / 3.0, 1.0 / 3.0, 1.0 / 3.0);
	}

	private void creatingUncertaintySchedule() {
		uSchedule = new UncertaintySchedule(1.0 / 3.0, 1.0 / 3.0, 1.0 / 3.0);
	}

	private void creatingUncertaintyDaysOff() {

		double equal = (double) (1.0 / 7.0);
		uDaysOff = new UncertaintyDaysOff(equal, equal, equal, equal, equal,
				equal, equal);
	}

	// ------------------------------------------------------------------------
	// ------------------------GETs and SETs-----------------------------------
	// ------------------------------------------------------------------------

	public UncertaintyPrice getUncertaintyPrice() {
		return uPrice;
	}

	public UncertaintySchedule getUncertaintySchedule() {
		return uSchedule;
	}

	public UncertaintyDaysOff getUncertaintyDaysOff() {
		return uDaysOff;
	}

	/**
	 * ------------------------------------------------------------------------
	 * Returns a String with the Uncertainty values for the first POI
	 * ------------------------------------------------------------------------
	 */
	public String to_String() {
		String info = "Uncertainty values for the first POI\n\t"
				+ getUncertaintyPrice().to_String() + "\n\t"
				+ getUncertaintySchedule().to_String() + "\n\t"
				+ getUncertaintyDaysOff().to_String();
		return info;
	}

	/**
	 * ------------------------------------------------------------------------
	 * Used to provide an example that exercises the functionality of the class.
	 * ------------------------------------------------------------------------
	 * 
	 * @param args
	 */
	// public static void main(String args[]) {
	// FirstPOI first = new FirstPOI();
	// System.err.println(first.to_String());
	//
	// }
}
